package com.clstu.inputstream_;

import com.clstu.outputstream_.Dog;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class ObjectInputStream_ {
    public static void main(String[] args) {
        ObjectInputStream ois = null;

        try {
            ois = new ObjectInputStream(new FileInputStream("D:\\Object.dat"));//反序列化（将文件读入成为对象）
            System.out.println(ois.readInt());
            System.out.println(ois.readBoolean());//需要主要的是，要按照写入的顺序读出，
            System.out.println(ois.readChar());    //谁先写入的，谁先读出，才能够对应上读出的每一个对象
            System.out.println(ois.readDouble());
            System.out.println(ois.readUTF());
            Dog dog = (Dog) ois.readObject();//向下转型
            System.out.println(ois.getClass());//能够读到对象，但是不一定可以使用
                                                            //具体能不能用要看Dog在哪里定义的以及是不是public的
                                                           //主要是访问权限的问题
            System.out.println("读出的dog对象的信息======"+dog);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } finally {
            try {
                ois.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }
}
